//
//  SZHomePageModel.swift
//  WeiBoExercise
//
//  Created by lx on 16/9/27.
//  Copyright © 2016年 BeiWo. All rights reserved.
//

import UIKit
import AFNetworking
import SVProgressHUD


class SZUserModel : NSObject
{
    
    /**
        用户名称
    */
    var screen_name : String?
    /**
        友好显示名称
    */
    var name : String?
    
    /**
    用户个人描述
    */
//    var description : String?
    
    /**
    用户的微博统一URL地址
    */
    var profile_url  : String?
    
    /**
    用户头像地址（50*50像素）
    */
    var profile_image_url : String?
    /**
 	是否是微博认证用户，即加V用户，true：是，false：否    
    */
    var verified : Bool?
    
    /**
 	用户头像地址（大图），180×180像素 
    */
    var avatar_large :String?
    /**
    用户头像地址（高清），高清头像原图
    */
    var avatar_hd : String?
    /**
    用户头像地址（50*50像素）
    */
    /**
    用户头像地址（50*50像素）
    */
    /**
    用户头像地址（50*50像素）
    */
    /**
    用户头像地址（50*50像素）
    */
    
    
    init( dict : [String : AnyObject]) {
        
        super.init()
        
        
        setValuesForKeysWithDictionary(dict)
        
    }
    
    override func setValue(value: AnyObject?, forUndefinedKey key: String) {
        
        
    }
    
    
}



class SZHomePageModel: NSObject {

    //微博发送的时间
    var created_at : String?
    
    //微博的ID
    var id : Int = 0
    
    //微博的文本内容
    var text : String?
    
    //微博的 来源
    var source : String?
    
    
    //内容图片
    var pic_urls : [[String : AnyObject]]?
    
    //转发数
    var reposts_count : NSNumber?
    
    //评论数
    var comments_count : NSNumber?
    
    //点赞数
    var attitudes_count : NSNumber?

    //用户数据模型
    var user : SZUserModel?
    

    
    class func loadHomePageData(completion : (modelsArr : [SZHomePageModel]? , error : NSError?) -> ())
    {
    
        let tool : SZNetworkingTool = SZNetworkingTool.shareTool()
        
        let urlStr = "2/statuses/home_timeline.json"
        
        
        let parame : [String : AnyObject] = ["access_token" : SZAccountModel.loadAccount()!.access_token!]
        
        tool.responseSerializer = AFHTTPResponseSerializer()
        tool.requestSerializer = AFHTTPRequestSerializer()
        
        SVProgressHUD.showInfoWithStatus("内容加载中...", maskType: .Black)

        
        tool.GET(urlStr, parameters: parame, progress:
            {
                (_) -> Void in
            
            
            }, success:
            {
                (_, JSONData) -> Void in
                
                let JSONDict : NSDictionary?
                
                do
                {
                    
                    JSONDict = try NSJSONSerialization.JSONObjectWithData(JSONData as! NSData, options: .MutableContainers) as? NSDictionary
                    
//                    print(JSONDict)
                    
                    var modelsArr : [SZHomePageModel]? = [SZHomePageModel]()
                    
                    for item in JSONDict!["statuses"] as! [[String : AnyObject]]
                    {
                    
//                        print("reposts_count = \(item["reposts_count"])")
                        
                        let model : SZHomePageModel = SZHomePageModel.init(dict: item)
//                        print(model)
                        modelsArr?.append(model)
                        
//                        print("reposts_count = \(model.reposts_count!)")
                    }
                    

//                    print("modelsArr.count = \(modelsArr?.count)")
                    
                    
                    completion(modelsArr: modelsArr , error: nil)
                    
                    SVProgressHUD.dismiss()
                    
                    let m = modelsArr![0]
//
                    print("name = \(m.user?.screen_name)")
//                    print("name = \(m.user)")

                    
                }
                catch
                {
                    
                    print("解析数据出现异常！")
                    
                    completion(modelsArr: nil , error: nil)

                    SVProgressHUD.showInfoWithStatus("内容加载失败!", maskType: .Black)

                }
                
            })
            
            {
                (_, error) -> Void in
                
                completion(modelsArr: nil , error: error)

                
            }
        
        
        }
    
    
    init( dict : [String : AnyObject]) {
        
        super.init()
        

        setValuesForKeysWithDictionary(dict)
        
    }
    

    override func setValue(value: AnyObject?, forKey key: String)
    {
        
        if key == "user"
        {
            
            user = SZUserModel.init(dict: value as! [String : AnyObject])
            
            
        }
        else
        {
            
            super.setValue(value, forKey: key)
            
        }
//        super.setValue(value, forKey: key)

        
        
    }
    
    
    override func setValue(value: AnyObject?, forUndefinedKey key: String) {

        
    }
    
}
